
package com.example.swordjava;


public class Test84 {

    public static void main(String[] args) {

        int[][] aa = {{1, 2, 3, 4},
                {5, 6, 7, 8},
                {9, 10, 11, 12},
                {13, 14, 15, 16}};

        int a = 1;
        int b = 4;
        int c = 4 * (b - a) / 2;

        System.out.println(Math.pow(1, 10));
        System.out.println(c);



    }

    public class TreeNode {
        int val = 0;
        TreeNode left = null;
        TreeNode right = null;

        public TreeNode(int val) {
            this.val = val;

        }
    }

    /**
     * JZ84 二叉树中和为某一值的路径(三)
     * 给定一个二叉树root和一个整数值 sum ，求该树有多少路径的的节点值之和等于 sum 。
     * 1.该题路径定义不需要从根节点开始，也不需要在叶子节点结束，但是一定是从父亲节点往下到孩子节点
     * 2.总节点数目为n
     * 3.保证最后返回的路径个数在整形范围内(即路径个数小于231-1)
     */
    int res = 0;

    public int FindPath(TreeNode root, int sum) {
        // write code here
        if (root == null) return res;
        dfs(root, sum);
        FindPath(root.left, sum);
        FindPath(root.right, sum);
        return res;
    }

    public void dfs(TreeNode root, int sum) {
        if (root == null) return;
        if (root.val == sum) {
            res++;
//            return;   因为二叉树的值可能为负数 所以不能返回
        }
        dfs(root.left, sum - root.val);
        dfs(root.right, sum - root.val);
    }

}














